//
//  AddBook.m
//  OC05_数组_字典_集合
//
//  Created by dllo on 16/3/2.
//  Copyright © 2016年 Apon. All rights reserved.
//

#import "AddBook.h"

@implementation AddBook

#pragma mark - 重写初始化
/** 目的:属性字典进行初始化. */

 // 第二种解决方案: 重写init方法.
- (instancetype)init {
    self =[super init];
    if (self) {
        _contactDic = [NSMutableDictionary dictionary];
    }

    return self;
    
}

#pragma mark - function
- (void)addContact:(Contact *)contact {
    
#if 0 // 第一种解决方法
    if (!self.contactDic) {
        self.contactDic = [NSMutableDictionary dictionary];
    }
#endif
    if (contact.name.length == 0 || contact.phoneNumber.length == 0) {
        NSLog(@"添加失败");
    }
    else {
         // 1. 取出联系人首字母(即组名).
         NSString *groupName = contact.groupName;
    
         // 2. 组名作为key, 在_contactDic中找出对应的数组.
         NSMutableArray *contactArr = [self.contactDic objectForKey:groupName];
         // 3. 向数组中添加联系人对象.
         // 判断数组是否存在, 如果存在, 直接添加联系人对象, 如果不存在, 创建数组, 然后添加联系人.
         if(contactArr == nil) {
            contactArr = [NSMutableArray array];//创建数组
            [contactArr addObject:contact];//添加联系人到数组
            [self.contactDic setObject:contactArr forKey:groupName];//添加数组到通讯录字典
         }
         else {
            [contactArr addObject:contact];
         }
    }

}
#pragma  mark - 显示所有联系人
- (void)viewAllContact {
    
//    NSLog(@"%@", self.contactDic);
    // 遍历字典, 获取每一个数组.
    for (NSString *key  in self.contactDic) {
        NSArray *array = [self.contactDic objectForKey:key];
//        NSLog(@"%@", array);
        // 遍历数组, 获取每一个联系人对象.
        for (Contact *contact in array) {
            [contact info];//显示联系人信息
        }
        
    }
    
    }

#pragma  mark - 移除所有联系人
- (void)removeAllcontact {
    //遍历字典,获取每一个数组
    for (NSString *key in self.contactDic) {
        
        [[self.contactDic objectForKey:key] removeAllObjects];//删除数组当中的所有联系人对象.
        
    }
    NSLog(@"移除成功");
//    NSLog(@"%@", self.contactDic);
}

@end


